package com.finanzas.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.finanzas.dao.LdapSocioDao;
import com.finanzas.dao.LdapSocioRelDao;
import com.finanzas.dao.SocioDao;
import com.finanzas.entity.LdapSocio;
import com.finanzas.entity.Socio;

import org.json.simple.JSONObject;


@WebServlet("/ValidaUsuarioServlet")
public class ValidaUsuarioServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	@EJB
	LdapSocioDao ldapSocioDao;
	@EJB
	SocioDao socioDao;
    @EJB
    LdapSocioRelDao ldapSocioRelDao;
	
    public ValidaUsuarioServlet() {
        super();
    }

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	@SuppressWarnings("unchecked")
	protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		PrintWriter out = response.getWriter();
		Socio socio = new Socio();
		String usuario = request.getParameter("user");
		String password = request.getParameter("pass");
		LdapSocio ldapSocio = new LdapSocio();
		ldapSocio.setPass(password);
		ldapSocio.setUser(usuario);
		Boolean flagSocio = ldapSocioDao.autenticaUsuarioLDAP(ldapSocio);
		JSONObject respuesta = new JSONObject();
		respuesta.put("val", new Boolean(flagSocio));
		if (flagSocio == true){
			ldapSocio = ldapSocioDao.consultarLdapSocio(ldapSocio);
			if (ldapSocio != null) {
				Long ldapSocioRel = ldapSocioRelDao.consultarIdSocioLdap(ldapSocio.getIdLdapSocio());
				socio = socioDao.buscarPorId(ldapSocioRel);
				respuesta.put("nombre",socio.getNombreSocio());
				respuesta.put("apPaterno", socio.getApellidoPaterno());
				respuesta.put("apMaterno", socio.getApellidoMaterno());
			}
			System.out.println("salida: "+respuesta);
			out.println(respuesta);
		}else {
			System.out.println("salida: "+respuesta);
			out.println(respuesta);
		}
		out.close();
	}
}
